iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Mobile Development

自己的 app 自己寫系列 第 29

[Day29] 有些事好像是始終如一的困難

  • 分享至 

  • xImage
  •  

倒數第二天回頭稍微看看另一個有實作 device activity 的專案 (by Tarık Ayberk Yılıkoğlu)。

在第一次進入 app 的時候,這個專案一樣使用了 AuthorizationCenter.shared.requestAuthorization 去請求授權,而專案也在最外層的 Screen_TimeAppMonitorExtension 中都標示了 @Main

中間關於幾個 struct 的交互看起來有點小複雜,首先 MonitorExtensionDeviceActivityReportExtension,這可以顯示自定義的使用時間報告,不過裡面需要實現 DeviceActivityReportScene。而當接收到 totalActivity 時,會把它傳遞給 TotalActivityReport

TotalActivityReport 裡面的 content 是 closure,接收一個 ActivityReport 為參數,然後返回 TotalActivityView。而 TotalActivityView 在拿到 ActivityReport 之後,其實做的事情很簡單,只是單純的拿取裡面的的資料並用特定的 UI 格式去渲染出來而已。

TotalActivityReport 裡面還有一個重要的 function:makeConfiguration,被用來生成需要的 ActivityReport 數據。這個函示會接收 DeviceActivityResults<DeviceActivityData> 做為參數,然後對裡面的內容經過處理後再傳遞下去。

最後,翻的時候意外在這個 repo 的 issue 中看到有人留言說 simulator 上跑不出資料,而作者回應說模擬器上面本來就無法正常顯示,要跑在實體機上才會收到結果,這樣好像得想個辦法把 iphone 和 mac 串起來啊。


上一篇
[Day28] 人果然應該未雨綢繆
下一篇
[Day30] 噴殺蟲劑的房間要通風多久才能住進去
系列文
自己的 app 自己寫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言